package com.luoyx.hauyne.admin.sys.converter;

public interface BaseConverter {

//    default <U> PageResult<U> toPageResultVoList(List<S> entityList, @Context Map<Long, String> userRealnameMap){
//        PageResult<U> pageResult = new PageResult<>();
//        if (entityList instanceof Page) {
//            Page<S> page = (Page<S>) entityList;
//            pageResult.setTotal(page.getTotal());
//
//            List<VO> rows = entityList.stream()
//                    .map(entity -> toPageResultVO(entity, userRealnameMap))
//                    .collect(Collectors.toList());
//
//            pageResult.setRows(rows);
//            pageResult.setPageNum(page.getPageNum());
//            pageResult.setSize(page.size());
//            pageResult.setPages(page.getPages());
//            pageResult.setSort(page.getOrderBy());
//            pageResult.setHasPre(page.getPageNum() - 1 >= 1);
//            pageResult.setHasNext(page.getPageNum() + 1 <= page.getPages());
//        }
//
//        return pageResult;
//    }
//
//    @Mapping(target = "createdByRealname", expression = "java(getRealName(role.getCreatedBy(), userRealnameMap))")
//    @Mapping(target = "lastModifiedByRealname", expression = "java(getRealName(role.getLastUpdatedBy(), userRealnameMap))")
//    VO toPageResultVO(S entity, @Context Map<Long, String> userRealnameMap);
//
//    default String getRealName(Long userId, Map<Long, String> userRealnameMap) {
//        return userRealnameMap.getOrDefault(userId, "N/A");
//    }
}
